From fb8de847df03b91d3e6f0674021af1fa1ba543b4 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Wed, 3 Nov 2010 11:36:18 +0100 Subject: [PATCH] GtkStyleProperties: Merge font descriptions on merge() This is necessary so incomplete font descriptions are ensured to have family and size. --- gtk/gtkstyleproperties.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/gtk/gtkstyleproperties.c b/gtk/gtkstyleproperties.c index df8529bd67..2c3a9558a0 100644 --- a/gtk/gtkstyleproperties.c +++ b/gtk/gtkstyleproperties.c @@ -1059,7 +1059,19 @@ gtk_style_properties_merge (GtkStyleProperties *props, data = &g_array_index (prop_to_merge->values, ValueData, i); value = property_data_get_value (prop, data->state); - if (replace || !G_IS_VALUE (value)) + if (G_VALUE_TYPE (&data->value) == PANGO_TYPE_FONT_DESCRIPTION && + G_IS_VALUE (value)) + { + PangoFontDescription *font_desc; + PangoFontDescription *font_desc_to_merge; + + /* Handle merging of font descriptions */ + font_desc = g_value_get_boxed (value); + font_desc_to_merge = g_value_get_boxed (&data->value); + + pango_font_description_merge (font_desc, font_desc_to_merge, replace); + } + else if (replace || !G_IS_VALUE (value)) { if (!G_IS_VALUE (value)) g_value_init (value, G_VALUE_TYPE (&data->value)); -- 2.30.2